package com.precojusto;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import com.google.gson.Gson;

public class CampanhaServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 2965080884998275555L;

	public void doPut(HttpServletRequest req, HttpServletResponse resp)
			throws IOException {

		Gson g = new Gson();
		JDOUtils j = new JDOUtils();
		
		String data = req.getParameter("data");
		Campanha c = g.fromJson(data, Campanha.class);
		
		resp.setContentType("text/plain");
		if( c.getId_campanha() == null ){			
			j.save(c);			
			resp.getWriter().println(g.toJson(c));
		}
		else{
			resp.getWriter().println("{'erro':'campanha ja cadastrada'}");
		}	
	}
	
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws IOException {
		
		Gson g = new Gson();
		JDOUtils j = new JDOUtils();
		
		String data = req.getParameter("data");
		Campanha c = g.fromJson(data, Campanha.class);
		
		List <Campanha> campanhas = j.findByAttribute(Campanha.class, "id_campanha", c.getId_campanha());
		
		resp.setContentType("text/plain");
		if(campanhas != null){	
			resp.getWriter().println(g.toJson(campanhas.get(0)));
		}
		else {
			resp.getWriter().println("{'erro': 'campanha nao encontrada'}");
		}
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		JDOUtils jdo = new JDOUtils();
		String data = req.getParameter("data");
		Gson g = new Gson();
		Campanha c = g.fromJson(data, Campanha.class);
		resp.setContentType("text/plain");
		
		if (c != null && c.getId_campanha() != null) {
			List<Campanha> campanhas = jdo.findByAttribute(Campanha.class, "id_campanha", c.getId_campanha());
			if (campanhas != null && campanhas.size() > 0) {
				Campanha pOri = campanhas.get(0);
				pOri.setAdeptos(c.getAdeptos());			
				jdo.save(pOri);
				resp.getWriter().println(g.toJson(pOri));
			}
			else {
				resp.getWriter().println("{'erro': 'campanha nao encontrada'}");
			}
		}
		else {
			resp.getWriter().println("{'error': 'campanha nao pode ser procurada'}");
		}
	}
}
